package com.iamteer.day01;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.Converter;

/**
BeanUtils：
BeanUtils 主要解决的问题：把对象的属性数据封装到对象中
BeanUtils 的好处：
	1. BeanUtils 设置属性值的时候，如果属性是基本数据类型，BeanUtils 会自动转换数据类型
	2. BeanUtils 设置属性值的时候底层也是依赖于 get 或者 set 方法

	1. 导包：commons-logging.jar、commons-beanutils-1.8.0.jar
	2. 

 */
public class BeanUtils_eg {
	 public static void main(String[] args) throws Exception {
		String id = "110";
		String name = "Chuck";
		String salary = "100000";
		String birthday = "2012-10-12";	
		ConvertUtils.register(new Converter() {
			
			@Override
			public Object convert(Class type, Object value) {
				//type：目前遇到的数据类型 value：目前参数的值
				SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
				Date date = null;
				try {
					date = dateFormat.parse((String)value);
				} catch (ParseException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
				return date;
			}
		}, Date.class);
		
		Emp e = new Emp();
		BeanUtils.setProperty(e, "id", id);
		BeanUtils.setProperty(e, "name", name);
		BeanUtils.setProperty(e, "salary", salary);
		BeanUtils.setProperty(e, "birthday", birthday);	//直接使用会报错！
		
		System.out.println(e);
		
	}
}
